package cn.dai.test.servlettest;

import cn.dai.dao.UserDaoImpl;
import cn.dai.pojo.User;
import cn.dai.service.UserService;
import cn.dai.service.UserServiceImpl;
import cn.dai.servlet.BaseServlet;
import com.alibaba.fastjson.JSON;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author ArkD42
 * @file RBAC
 * @create 2020 - 06 - 16 - 8:32
 */

@WebServlet("/ajax")
public class AjaxServlet extends BaseServlet {

    /**
     * /ajax?act=feedBack
     * 反馈给前端Ajax不应该跳转，直接写输出流即可
     * 数据出于方便前端处理的考虑，统一使用的数据格式为JSON
     * @param request
     * @param response
     * @throws IOException
     */
    public void feedBack(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // Ajax从前端发送请求，Servlet接受请求，获取关键信息，也就是id主键信息等等，
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println("从AjaxTest.jsp获取到的数据： 用户名：" + username + " 密码：" + password);
        // 然后在Servlet这里我们就可以调用Service访问数据库，把数据封装成Java对象【或者是集合容器对象】

        Map<String,Object> map = new HashMap<>();

        map.put("name","阿伟");
        map.put("age",22);
        map.put("gender",true);

        // 对这个对象需要转换成前端能接受处理的JSON格式
        String jsonString = JSON.toJSONString(map);

        // PrintWriter out
        PrintWriter writer = response.getWriter();

        // 把转换好的格式写给前端
        writer.println(jsonString);
    }
}
